import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    //继承不是目的，目的是重写父类中的方法

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //这个代码一定要删除掉
//        super.doGet(req, resp);
        //HttpServletRequest req代表这次请求的http请求内容
        //HttpServletResponse resp代表这次请求要返回的http响应内容
        //doGet方法本质上是一个回调函数，把这个方法写好之后，就会交给TomCat，Tomcat在收到一个合适的 GET请求的时候就会自动调用doGet
        //调用doGet的时候，Tomcat就会解析这次的HTTP请求，生成一个HttpServletRequest对象（这个对象里的属性啥的都是和HTTP协议格式匹配的
        //相当于Tomcat帮我们把HTTP请求给解析好了
        //同时，Tomcat也会构造出一个空的HttpServletResponse对象（空指的不是null,而是一个new好的但是没有初始化属性的对象），把这个resp对象也会传递到doGET里面
        //doGET要做的事情，就是根据这次请求（req)计算出响应（resp)
        //doGET里的代码，就要根据req里不同的参数的细节生成一个具体的resp对象（往空对象里设置属性），Tomcat就会根据这个响应属性转成符合HTTP协议的响应报文，返回给浏览器了
        //打印helloworld，此时打印的helloworld实在服务器的日志中产生的，Tomcat的日志中
        System.out.println("hello servlet");
        //要想把helloworld返回给客户端，还需要进一步的使用下列代码
        //通过getWriter得到resp里面内置的输出流对象（Writer字符流）
        //使用write方法就可以把一个字符串写入到resp对象中，使用println也是可以的
        resp.getWriter().write("hello servlet");
    }
}
